package com.cskaoyan.javase.basic._10control;

/**
 * @description: 循环结构
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 对于循环而言,要想循环停下来,并且能够循环执行一定的次数
 * 它需要一个变量来控制循环,称之为循环控制变量,循环的其它结构都是围绕它展开的
 * 拿for循环举例:
 * for(初始化语句;条件判断语句;循环控制语句){
 *     //循环体语句
 * }
 * 初始化语句用于初始化循环控制变量,条件判断语句用于结束循环指出循环结束的条件
 * 循环控制变量普遍使用i,j,k
 *
 *
 */
public class Demo3 {
    public static void main(String[] args) {
        /*for (int i = 1; i <= 10; i++) {
        }*/
        //for循环的快捷键 fori
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < 4; j++) {
                for (int k = 0; k < 3; k++) {

                }
            }
        }
        //System.out.println(i);
        //数字.fori
        for (int i = 0; i < 10; i++) {
        }

        //如果循环的循环体只有一条语句,可以省略大括号
        for (int i = 0; i < 3; i++) System.out.println("hello world");

        //珠峰的高度是8848m，假设有一张足够大可折叠的纸张，初始厚度是0.01m
        //- 求解这张纸折叠多少次，纸张的厚度开始超过珠峰？
        double length = 0.01;
        int count = 0;
        //while (length < 8848) {
        //    //折叠一次
        //    length *= 2;
        //    count++;
        //}
        //System.out.println(count);

        for (double l = 0.01; l < 8848; l *= 2) {
            count++;
        }
        System.out.println(count);

        //死循环
        //while (true){
        //
        //}
        //Unreachable statement
        //System.out.println();
        //int i = 0;
        //for (; i < 10; ) {
        //    i++;
        //}


        //嵌套for循环打印星号,外层for控制行数,内层for控制列数
        //5行3列的星星
        for (int i = 0; i < 5; i++) {
            for (int j = 0; j < 3; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
